#pragma once
#include <windows.h>
#include <gl/gl.h>

#include "nvsg/Scene.h"

namespace nvui
{
	class GLWinRenderArea;
	class TrackballCameraManipulator;
}

class CRenderArea
{
protected:
	HWND					m_HWND;				//!< Window handle
	HDC						m_HDC;				//!< Device context
	HGLRC					m_HGLRC;			//!< OpenGL context
	
	nvsg::SceneHandle*					m_SceneHandle;
	nvui::GLWinRenderArea*				m_RenderArea;
	nvui::TrackballCameraManipulator*	m_TrackballCameraManipulator;

public:
							CRenderArea( );
							~CRenderArea( );
	void					Initialize( HWND inHWND );
	void					Render( );
	void					Destroy( );

protected:
	nvsg::NodeHandle*		CreateSimpleTree( ) const;
	void					CleanRenderArea( );
};